class bag extends eui.Component implements eui.UIComponent {
	public constructor() {
		super();
		// 被添加到舞台时进行初始化
		this.addEventListener(egret.Event.ADDED_TO_STAGE, this.init, this)
	}

	protected partAdded(partName: string, instance: any): void {
		super.partAdded(partName, instance);

	}


	protected childrenCreated(): void {
		super.childrenCreated();

	}

	// 背包group
	public bag;
	// 仓库group
	public house;

	// 背包list
	public bag_list;
	// 仓库list
	public house_list;


	// 背包提交button
	public bag_btn;
	// 仓库提交button
	public house_btn;

	// switch开关
	public sw_btn;
	// 用来暂存选中的下标
	public indiceArr;

	// 初始化
	public init() {

		setTimeout(function () {
			// 后续的场景 都可以使用init() 获取管理类的实例化
			let manager = sceneManager.init();
			manager.loading(finalScene, "game" ,{ score:100 , time:6000 });

		},2000)




		// 点击背包 
		this.bag_list.addEventListener("touchEnd", function () {

			console.log(this.bag_list);
			

			console.log("开关：", this.sw_btn.selected)

			if (this.sw_btn.selected) {
				// 打开 list控件的多选模式
				this.bag_list.allowMultipleSelection = true;

				this.house_list.allowMultipleSelection = true;
				// 暂存之后要用的下标值
				this.indiceArr = this.bag_list.selectedIndices;

			} else {

				this.bag_list.allowMultipleSelection = false;

				this.house_list.allowMultipleSelection = false;

				this.moveData(this.bag_list, this.house_list)
			}

		}, this, false, 1)

		// 点击提交 
		this.bag_btn.addEventListener("touchEnd", function () {

			// 找到下标最小值 依次移除
			this.indiceArr.sort(function (a, b) {
				return a - b;
			})

			console.log("indiceArr", this.indiceArr)

			for (let i = 0; i < this.bag_list.selectedIndices.length; i++) {

				// 选中的位置 - 循环时删除成员的次数（偏移）
				let j = this.indiceArr[i] - i

				// 如果house没有arrayCollection对象 新new一个赋给他
				if (!this.house_list.dataProvider) {
					let arr = new eui.ArrayCollection();
					this.house_list.dataProvider = arr;
				}

				// 给仓库添加 对应的数据		从bag里拿数据传给house
				this.house_list.dataProvider.addItem(this.bag_list.dataProvider.source[j])

				// 删除背包中选中的位置
				this.bag_list.dataProvider.removeItemAt(j);
			}

			console.log(this.bag_list.selectedItems);
		}, this, false, 5)


		// 点击仓库
		this.house_list.addEventListener("touchEnd", function () {
			this.moveData(this.house_list, this.bag_list)
			console.log("仓库：", this.house_list.dataProvider.source);

		}, this)

	}

	// 传入两个对象 ，将对象1的list数据源移除并添加到对象2的数据源
	public moveData(objA, objB) {
		// selectedIndex大于等于0时才认为选中
		if (objA.selectedIndex >= 0) {

			// this.bag_list.dataProvider.source  当前list的数据源（ 数组形式 ）
			// this.bag_list.selectedIndex		在list中当前选中的子项下标
			let passData = objA.dataProvider.source[objA.selectedIndex];

			console.log(passData);

			console.log(objA);
			if (objB.dataProvider) {

				objB.dataProvider.addItem(passData);

			} else {
				// 创建ArrayCollection对象 赋给 空的list控件
				let arr = new eui.ArrayCollection();
				arr.addItem(passData);
				objB.dataProvider = arr;
			}
			// 在list中删除指定位置的数据源
			objA.dataProvider.removeItemAt(objA.selectedIndex);

		}
	}



}